<!-- HTML header for doxygen 1.8.9.1-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<meta name="robots" content="NOINDEX, NOFOLLOW" /> <!-- Prevent indexing by search engines -->
<title>Compute Library: ITensorInfo Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Compute Library
   &#160;<span id="projectnumber">18.05</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.xhtml"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.xhtml"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.xhtml"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.xhtml"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.xhtml"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.xhtml"><span>Data&#160;Structures</span></a></li>
      <li><a href="classes.xhtml"><span>Data&#160;Structure&#160;Index</span></a></li>
      <li><a href="inherits.xhtml"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.xhtml"><span>Data&#160;Fields</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classarm__compute_1_1_i_tensor_info.xhtml','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">ITensorInfo Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p>Store the tensor's metadata.  
 <a href="classarm__compute_1_1_i_tensor_info.xhtml#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_i_tensor_info_8h_source.xhtml">ITensorInfo.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for ITensorInfo:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classarm__compute_1_1_i_tensor_info__coll__graph.svg" width="206" height="203"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="graph_legend.xhtml">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ad998b50febf68540277e121a9c670bfa"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#ad998b50febf68540277e121a9c670bfa">~ITensorInfo</a> ()=default</td></tr>
<tr class="memdesc:ad998b50febf68540277e121a9c670bfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default virtual destructor.  <a href="#ad998b50febf68540277e121a9c670bfa">More...</a><br /></td></tr>
<tr class="separator:ad998b50febf68540277e121a9c670bfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ebcdce876b4cd07736afa47d50154de"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a9ebcdce876b4cd07736afa47d50154de">set_data_type</a> (<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a7cfb31af63202568efef5214acfbf3ba">data_type</a>)=0</td></tr>
<tr class="memdesc:a9ebcdce876b4cd07736afa47d50154de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the data type to the specified value.  <a href="#a9ebcdce876b4cd07736afa47d50154de">More...</a><br /></td></tr>
<tr class="separator:a9ebcdce876b4cd07736afa47d50154de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf74be25e2392705f29352ffaa4b1f9d"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#aaf74be25e2392705f29352ffaa4b1f9d">set_num_channels</a> (int <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#ad7829ae79223ab87f9da4c0bd7d229ba">num_channels</a>)=0</td></tr>
<tr class="memdesc:aaf74be25e2392705f29352ffaa4b1f9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the number of channels to the specified value.  <a href="#aaf74be25e2392705f29352ffaa4b1f9d">More...</a><br /></td></tr>
<tr class="separator:aaf74be25e2392705f29352ffaa4b1f9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17394f0f7aea22d9b2d4c6f33bfa69ca"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a17394f0f7aea22d9b2d4c6f33bfa69ca">set_format</a> (<a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a57360dd9ca408834c0ea1a8ef70a11f4">format</a>)=0</td></tr>
<tr class="memdesc:a17394f0f7aea22d9b2d4c6f33bfa69ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the format of an already initialized tensor.  <a href="#a17394f0f7aea22d9b2d4c6f33bfa69ca">More...</a><br /></td></tr>
<tr class="separator:a17394f0f7aea22d9b2d4c6f33bfa69ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12a4f1190952613e36b44846962e26bb"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a12a4f1190952613e36b44846962e26bb">set_tensor_shape</a> (const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;shape)=0</td></tr>
<tr class="memdesc:a12a4f1190952613e36b44846962e26bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the shape of an already initialized tensor.  <a href="#a12a4f1190952613e36b44846962e26bb">More...</a><br /></td></tr>
<tr class="separator:a12a4f1190952613e36b44846962e26bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d9488caf817e12132f0ca2a4c30deba"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a8d9488caf817e12132f0ca2a4c30deba">set_fixed_point_position</a> (int <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#ab21a362740e892b6e913bd8db03b0e67">fixed_point_position</a>)=0</td></tr>
<tr class="memdesc:a8d9488caf817e12132f0ca2a4c30deba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the fixed point position to the specified value.  <a href="#a8d9488caf817e12132f0ca2a4c30deba">More...</a><br /></td></tr>
<tr class="separator:a8d9488caf817e12132f0ca2a4c30deba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a575d37eaf8a905c8ca3c0250757c2b81"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a575d37eaf8a905c8ca3c0250757c2b81">set_quantization_info</a> (const <a class="el" href="structarm__compute_1_1_quantization_info.xhtml">QuantizationInfo</a> &amp;<a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a3f3e1a3200223e6a304a533b1016e749">quantization_info</a>)=0</td></tr>
<tr class="memdesc:a575d37eaf8a905c8ca3c0250757c2b81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the quantization settings (scale and offset) of the tensor.  <a href="#a575d37eaf8a905c8ca3c0250757c2b81">More...</a><br /></td></tr>
<tr class="separator:a575d37eaf8a905c8ca3c0250757c2b81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb9481fe056b9749f9b4c08db101cc15"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#abb9481fe056b9749f9b4c08db101cc15">set_data_layout</a> (const <a class="el" href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0">DataLayout</a> &amp;<a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a367b5090ab432bc7de2c32369e087ab1">data_layout</a>)=0</td></tr>
<tr class="memdesc:abb9481fe056b9749f9b4c08db101cc15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the data layout of the tensor.  <a href="#abb9481fe056b9749f9b4c08db101cc15">More...</a><br /></td></tr>
<tr class="separator:abb9481fe056b9749f9b4c08db101cc15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc135290818a7ae02d2195c013796fdd"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#afc135290818a7ae02d2195c013796fdd">reset_padding</a> ()=0</td></tr>
<tr class="memdesc:afc135290818a7ae02d2195c013796fdd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets the padding settings of the tensor.  <a href="#afc135290818a7ae02d2195c013796fdd">More...</a><br /></td></tr>
<tr class="separator:afc135290818a7ae02d2195c013796fdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f2d0ac983637a0459daf43bcd65cc38"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a4f2d0ac983637a0459daf43bcd65cc38">auto_padding</a> ()=0</td></tr>
<tr class="memdesc:a4f2d0ac983637a0459daf43bcd65cc38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the offset to the first element and the strides to automatically computed values.  <a href="#a4f2d0ac983637a0459daf43bcd65cc38">More...</a><br /></td></tr>
<tr class="separator:a4f2d0ac983637a0459daf43bcd65cc38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cd5aea514f03afb48ebe22581ea4c66"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a0cd5aea514f03afb48ebe22581ea4c66">extend_padding</a> (const <a class="el" href="namespacearm__compute.xhtml#a4467b302fc9ec312c40580336ab783da">PaddingSize</a> &amp;<a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a07b929c34ad1dc823d8315876aa403ce">padding</a>)=0</td></tr>
<tr class="memdesc:a0cd5aea514f03afb48ebe22581ea4c66"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the offset to the first element, the strides and the total size.  <a href="#a0cd5aea514f03afb48ebe22581ea4c66">More...</a><br /></td></tr>
<tr class="separator:a0cd5aea514f03afb48ebe22581ea4c66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a178f0d3d87f959e00a743328d95359d2"><td class="memItemLeft" align="right" valign="top">virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a178f0d3d87f959e00a743328d95359d2">dimension</a> (size_t index) const =0</td></tr>
<tr class="memdesc:a178f0d3d87f959e00a743328d95359d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the size of the requested dimension.  <a href="#a178f0d3d87f959e00a743328d95359d2">More...</a><br /></td></tr>
<tr class="separator:a178f0d3d87f959e00a743328d95359d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3372a4569b4702a881b1606b0c144c4"><td class="memItemLeft" align="right" valign="top">virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#ae3372a4569b4702a881b1606b0c144c4">dimension</a> (<a class="el" href="namespacearm__compute.xhtml#a74ce3f7420453d3446218ff3b7453e02">DataLayoutDimension</a> dimension) const =0</td></tr>
<tr class="memdesc:ae3372a4569b4702a881b1606b0c144c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the size of the requested data layout dimension.  <a href="#ae3372a4569b4702a881b1606b0c144c4">More...</a><br /></td></tr>
<tr class="separator:ae3372a4569b4702a881b1606b0c144c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b14f175bf5281f57b561e2d4e4b1f1f"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="classarm__compute_1_1_strides.xhtml">Strides</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a6b14f175bf5281f57b561e2d4e4b1f1f">strides_in_bytes</a> () const =0</td></tr>
<tr class="memdesc:a6b14f175bf5281f57b561e2d4e4b1f1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The strides in bytes for accessing each dimension of the tensor.  <a href="#a6b14f175bf5281f57b561e2d4e4b1f1f">More...</a><br /></td></tr>
<tr class="separator:a6b14f175bf5281f57b561e2d4e4b1f1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad0bd5cc32e7e4c0699eccba91e5de397"><td class="memItemLeft" align="right" valign="top">virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#ad0bd5cc32e7e4c0699eccba91e5de397">offset_first_element_in_bytes</a> () const =0</td></tr>
<tr class="memdesc:ad0bd5cc32e7e4c0699eccba91e5de397"><td class="mdescLeft">&#160;</td><td class="mdescRight">The offset from the beginning of the memory allocation to the first element of the tensor.  <a href="#ad0bd5cc32e7e4c0699eccba91e5de397">More...</a><br /></td></tr>
<tr class="separator:ad0bd5cc32e7e4c0699eccba91e5de397"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a5312c9a822d27a3b38dc238c1c7de3"><td class="memItemLeft" align="right" valign="top">virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a8a5312c9a822d27a3b38dc238c1c7de3">offset_element_in_bytes</a> (const <a class="el" href="classarm__compute_1_1_coordinates.xhtml">Coordinates</a> &amp;pos) const =0</td></tr>
<tr class="memdesc:a8a5312c9a822d27a3b38dc238c1c7de3"><td class="mdescLeft">&#160;</td><td class="mdescRight">The offset in bytes from the beginning of the memory allocation to access the element at position (x, y, z ...)  <a href="#a8a5312c9a822d27a3b38dc238c1c7de3">More...</a><br /></td></tr>
<tr class="separator:a8a5312c9a822d27a3b38dc238c1c7de3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab21a362740e892b6e913bd8db03b0e67"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#ab21a362740e892b6e913bd8db03b0e67">fixed_point_position</a> () const =0</td></tr>
<tr class="memdesc:ab21a362740e892b6e913bd8db03b0e67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fixed point position used when the tensor data type is QS8 or QS16.  <a href="#ab21a362740e892b6e913bd8db03b0e67">More...</a><br /></td></tr>
<tr class="separator:ab21a362740e892b6e913bd8db03b0e67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa459796b5489eca8a9160cb5dcf1a103"><td class="memItemLeft" align="right" valign="top">virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#aa459796b5489eca8a9160cb5dcf1a103">element_size</a> () const =0</td></tr>
<tr class="memdesc:aa459796b5489eca8a9160cb5dcf1a103"><td class="mdescLeft">&#160;</td><td class="mdescRight">Element size in bytes calculated as data_size() * <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#ad7829ae79223ab87f9da4c0bd7d229ba" title="The number of channels for each tensor element. ">num_channels()</a>  <a href="#aa459796b5489eca8a9160cb5dcf1a103">More...</a><br /></td></tr>
<tr class="separator:aa459796b5489eca8a9160cb5dcf1a103"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f4e725b8e1ea36b30e09dc08ae6961d"><td class="memItemLeft" align="right" valign="top">virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a1f4e725b8e1ea36b30e09dc08ae6961d">num_dimensions</a> () const =0</td></tr>
<tr class="memdesc:a1f4e725b8e1ea36b30e09dc08ae6961d"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of dimensions of the tensor (rank)  <a href="#a1f4e725b8e1ea36b30e09dc08ae6961d">More...</a><br /></td></tr>
<tr class="separator:a1f4e725b8e1ea36b30e09dc08ae6961d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7829ae79223ab87f9da4c0bd7d229ba"><td class="memItemLeft" align="right" valign="top">virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#ad7829ae79223ab87f9da4c0bd7d229ba">num_channels</a> () const =0</td></tr>
<tr class="memdesc:ad7829ae79223ab87f9da4c0bd7d229ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of channels for each tensor element.  <a href="#ad7829ae79223ab87f9da4c0bd7d229ba">More...</a><br /></td></tr>
<tr class="separator:ad7829ae79223ab87f9da4c0bd7d229ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c66505457d00ece3aa4b34cab80757d"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a7c66505457d00ece3aa4b34cab80757d">tensor_shape</a> () const =0</td></tr>
<tr class="memdesc:a7c66505457d00ece3aa4b34cab80757d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size for each dimension of the tensor.  <a href="#a7c66505457d00ece3aa4b34cab80757d">More...</a><br /></td></tr>
<tr class="separator:a7c66505457d00ece3aa4b34cab80757d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7cfb31af63202568efef5214acfbf3ba"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a7cfb31af63202568efef5214acfbf3ba">data_type</a> () const =0</td></tr>
<tr class="memdesc:a7cfb31af63202568efef5214acfbf3ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data type used for each element of the tensor.  <a href="#a7cfb31af63202568efef5214acfbf3ba">More...</a><br /></td></tr>
<tr class="separator:a7cfb31af63202568efef5214acfbf3ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57360dd9ca408834c0ea1a8ef70a11f4"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a57360dd9ca408834c0ea1a8ef70a11f4">format</a> () const =0</td></tr>
<tr class="memdesc:a57360dd9ca408834c0ea1a8ef70a11f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Colour format of the image.  <a href="#a57360dd9ca408834c0ea1a8ef70a11f4">More...</a><br /></td></tr>
<tr class="separator:a57360dd9ca408834c0ea1a8ef70a11f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18064e0011c3869d884653e9e7c47b66"><td class="memItemLeft" align="right" valign="top">virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a18064e0011c3869d884653e9e7c47b66">total_size</a> () const =0</td></tr>
<tr class="memdesc:a18064e0011c3869d884653e9e7c47b66"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the total size of the tensor in bytes.  <a href="#a18064e0011c3869d884653e9e7c47b66">More...</a><br /></td></tr>
<tr class="separator:a18064e0011c3869d884653e9e7c47b66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07b929c34ad1dc823d8315876aa403ce"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacearm__compute.xhtml#a4467b302fc9ec312c40580336ab783da">PaddingSize</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a07b929c34ad1dc823d8315876aa403ce">padding</a> () const =0</td></tr>
<tr class="memdesc:a07b929c34ad1dc823d8315876aa403ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Padding of tensor.  <a href="#a07b929c34ad1dc823d8315876aa403ce">More...</a><br /></td></tr>
<tr class="separator:a07b929c34ad1dc823d8315876aa403ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac394d6570ab3325810a3532d39091a52"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#ac394d6570ab3325810a3532d39091a52">has_padding</a> () const =0</td></tr>
<tr class="memdesc:ac394d6570ab3325810a3532d39091a52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the tensor has been allocated with padding or not.  <a href="#ac394d6570ab3325810a3532d39091a52">More...</a><br /></td></tr>
<tr class="separator:ac394d6570ab3325810a3532d39091a52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af555338f11d1d28f258f259ac3da743b"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#af555338f11d1d28f258f259ac3da743b">is_resizable</a> () const =0</td></tr>
<tr class="memdesc:af555338f11d1d28f258f259ac3da743b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flag indicating whether the size of the tensor can be changed.  <a href="#af555338f11d1d28f258f259ac3da743b">More...</a><br /></td></tr>
<tr class="separator:af555338f11d1d28f258f259ac3da743b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9273842d8e5dc1a3c7fab727176fd7fe"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a9273842d8e5dc1a3c7fab727176fd7fe">set_is_resizable</a> (bool <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#af555338f11d1d28f258f259ac3da743b">is_resizable</a>)=0</td></tr>
<tr class="memdesc:a9273842d8e5dc1a3c7fab727176fd7fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the flag whether the tensor size can be changed.  <a href="#a9273842d8e5dc1a3c7fab727176fd7fe">More...</a><br /></td></tr>
<tr class="separator:a9273842d8e5dc1a3c7fab727176fd7fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74dfd07380a290c34fe7c8e065029b95"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a74dfd07380a290c34fe7c8e065029b95">valid_region</a> () const =0</td></tr>
<tr class="memdesc:a74dfd07380a290c34fe7c8e065029b95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Valid region of the tensor.  <a href="#a74dfd07380a290c34fe7c8e065029b95">More...</a><br /></td></tr>
<tr class="separator:a74dfd07380a290c34fe7c8e065029b95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9586081a29fceb532ab270bd843abee6"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a9586081a29fceb532ab270bd843abee6">set_valid_region</a> (const <a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a> &amp;<a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a74dfd07380a290c34fe7c8e065029b95">valid_region</a>)=0</td></tr>
<tr class="memdesc:a9586081a29fceb532ab270bd843abee6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the valid region of the tensor.  <a href="#a9586081a29fceb532ab270bd843abee6">More...</a><br /></td></tr>
<tr class="separator:a9586081a29fceb532ab270bd843abee6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f3e1a3200223e6a304a533b1016e749"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structarm__compute_1_1_quantization_info.xhtml">QuantizationInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a3f3e1a3200223e6a304a533b1016e749">quantization_info</a> () const =0</td></tr>
<tr class="memdesc:a3f3e1a3200223e6a304a533b1016e749"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the quantization settings (scale and offset) of the tensor.  <a href="#a3f3e1a3200223e6a304a533b1016e749">More...</a><br /></td></tr>
<tr class="separator:a3f3e1a3200223e6a304a533b1016e749"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a367b5090ab432bc7de2c32369e087ab1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0">DataLayout</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#a367b5090ab432bc7de2c32369e087ab1">data_layout</a> () const =0</td></tr>
<tr class="memdesc:a367b5090ab432bc7de2c32369e087ab1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the data layout of the tensor.  <a href="#a367b5090ab432bc7de2c32369e087ab1">More...</a><br /></td></tr>
<tr class="separator:a367b5090ab432bc7de2c32369e087ab1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classarm__compute_1_1misc_1_1_i_cloneable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classarm__compute_1_1misc_1_1_i_cloneable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classarm__compute_1_1misc_1_1_i_cloneable.xhtml">ICloneable&lt; ITensorInfo &gt;</a></td></tr>
<tr class="memitem:a711fa7a27557369760fc1fd236deb51c inherit pub_methods_classarm__compute_1_1misc_1_1_i_cloneable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1misc_1_1_i_cloneable.xhtml#a711fa7a27557369760fc1fd236deb51c">~ICloneable</a> ()=default</td></tr>
<tr class="memdesc:a711fa7a27557369760fc1fd236deb51c inherit pub_methods_classarm__compute_1_1misc_1_1_i_cloneable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default virtual desctructor.  <a href="#a711fa7a27557369760fc1fd236deb51c">More...</a><br /></td></tr>
<tr class="separator:a711fa7a27557369760fc1fd236deb51c inherit pub_methods_classarm__compute_1_1misc_1_1_i_cloneable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d10e5012a872e7f78f2b539b673049d inherit pub_methods_classarm__compute_1_1misc_1_1_i_cloneable"><td class="memItemLeft" align="right" valign="top">virtual std::unique_ptr&lt; <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1misc_1_1_i_cloneable.xhtml#a4d10e5012a872e7f78f2b539b673049d">clone</a> () const =0</td></tr>
<tr class="memdesc:a4d10e5012a872e7f78f2b539b673049d inherit pub_methods_classarm__compute_1_1misc_1_1_i_cloneable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a clone of the current object of class T.  <a href="#a4d10e5012a872e7f78f2b539b673049d">More...</a><br /></td></tr>
<tr class="separator:a4d10e5012a872e7f78f2b539b673049d inherit pub_methods_classarm__compute_1_1misc_1_1_i_cloneable"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:abb92caa923c8ff80bfdf1b408ef49185"><td class="memTemplParams" colspan="2">template&lt;typename... Infos&gt; </td></tr>
<tr class="memitem:abb92caa923c8ff80bfdf1b408ef49185"><td class="memTemplItemLeft" align="right" valign="top">static std::pair&lt; <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a>, <a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#abb92caa923c8ff80bfdf1b408ef49185">broadcast_shape_and_valid_region</a> (const Infos &amp;...infos)</td></tr>
<tr class="memdesc:abb92caa923c8ff80bfdf1b408ef49185"><td class="mdescLeft">&#160;</td><td class="mdescRight">If infos are broadcast compatible tensor info's, return the broadcasted shape and the intersection of the broadcasted valid regions of the tensors.  <a href="#abb92caa923c8ff80bfdf1b408ef49185">More...</a><br /></td></tr>
<tr class="separator:abb92caa923c8ff80bfdf1b408ef49185"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Store the tensor's metadata. </p>

<p>Definition at line <a class="el" href="_i_tensor_info_8h_source.xhtml#l00040">40</a> of file <a class="el" href="_i_tensor_info_8h_source.xhtml">ITensorInfo.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ad998b50febf68540277e121a9c670bfa"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual ~<a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">default</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Default virtual destructor. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a4f2d0ac983637a0459daf43bcd65cc38"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool auto_padding </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Update the offset to the first element and the strides to automatically computed values. </p>
<dl class="section note"><dt>Note</dt><dd>The padding used by this method is really conservative so that the tensor can be used for most functions.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>True if the strides or the offset to the first element have changed. </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#a907f837b924945ad1981c8fe8eca61e4">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#a907f837b924945ad1981c8fe8eca61e4">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="_sub_tensor_info_8h_source.xhtml#l00120">SubTensorInfo::auto_padding()</a>.</p>

</div>
</div>
<a class="anchor" id="abb92caa923c8ff80bfdf1b408ef49185"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static std::pair&lt;<a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a>, <a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a>&gt; broadcast_shape_and_valid_region </td>
          <td>(</td>
          <td class="paramtype">const Infos &amp;...&#160;</td>
          <td class="paramname"><em>infos</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>If infos are broadcast compatible tensor info's, return the broadcasted shape and the intersection of the broadcasted valid regions of the tensors. </p>
<p>Two tensor info's are broadcast compatible if their shapes are broadcast compatible.</p>
<p>Two tensor shapes are broadcast compatible if for each dimension, they're equal or one of them is 1.</p>
<p>If two shapes are compatible, each dimension in the broadcasted shape is the max of the original dimensions.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">infos</td><td><a class="el" href="classarm__compute_1_1_tensor.xhtml" title="Basic implementation of the tensor interface. ">Tensor</a> info's.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The broadcasted shape and valid region, or an empty shape and valid region if the info's are not broadcast compatible. </dd></dl>

<p>Definition at line <a class="el" href="_i_tensor_info_8h_source.xhtml#l00260">260</a> of file <a class="el" href="_i_tensor_info_8h_source.xhtml">ITensorInfo.h</a>.</p>

<p>References <a class="el" href="_tensor_shape_8h_source.xhtml#l00196">TensorShape::broadcast_shape()</a>, <a class="el" href="_utility_8h_source.xhtml#l00091">arm_compute::utility::for_each()</a>, <a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">arm_compute::test::validation::info()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00902">arm_compute::test::fixed_point_arithmetic::detail::max()</a>, and <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00897">arm_compute::test::fixed_point_arithmetic::detail::min()</a>.</p>
<div class="fragment"><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;    {</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;        TensorShape bc_shape = <a class="code" href="classarm__compute_1_1_tensor_shape.xhtml#a58838fbdce5b5330d84e62329b45ff7d">TensorShape::broadcast_shape</a>(infos.tensor_shape()...);</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;        ValidRegion bc_valid_region{ Coordinates(), bc_shape };</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;        <span class="keyword">auto</span> broadcast_valid_region = [&amp;bc_valid_region](<span class="keyword">const</span> ITensorInfo &amp; <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>)</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;        {</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;            <span class="keywordflow">if</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.num_dimensions() != 0)</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;            {</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;                <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> d = 0; d &lt; bc_valid_region.shape.num_dimensions(); ++d)</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;                {</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;                    <span class="keyword">const</span> <span class="keywordtype">bool</span> is_broadcast = (<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.tensor_shape()[d] == 1);</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;                    <span class="keyword">const</span> <span class="keywordtype">int</span>    anchor_max = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::max</a>(bc_valid_region.anchor[d], <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.valid_region().anchor[d]);</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;                    <span class="keyword">const</span> <span class="keywordtype">size_t</span> valid_min  = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">std::min</a>(bc_valid_region.shape[d], <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.valid_region().shape[d]);</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;                    <span class="keywordflow">if</span>(!is_broadcast || (valid_min == 0))</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;                    {</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;                        bc_valid_region.anchor.set(d, anchor_max);</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;                        bc_valid_region.shape.set(d, valid_min);</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;                    }</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;                }</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;            }</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;        };</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;        <a class="code" href="namespacearm__compute_1_1utility.xhtml#a067ebd28103d827b6ec17032e2344064">utility::for_each</a>(broadcast_valid_region, infos...);</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;        <span class="keywordflow">return</span> std::pair&lt;TensorShape, ValidRegion&gt;(bc_shape, bc_valid_region);</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    }</div><div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_aabcf39e3917f842dbc5fbb0d802f24d5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">arm_compute::test::fixed_point_arithmetic::detail::min</a></div><div class="ttdeci">fixed_point&lt; T &gt; min(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00897">FixedPoint.h:897</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a096668313a9a819d54a2e65ec21ff0cc"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">arm_compute::test::validation::info</a></div><div class="ttdeci">src info() -&gt; set_format(Format::S16)</div></div>
<div class="ttc" id="classarm__compute_1_1_tensor_shape_xhtml_a58838fbdce5b5330d84e62329b45ff7d"><div class="ttname"><a href="classarm__compute_1_1_tensor_shape.xhtml#a58838fbdce5b5330d84e62329b45ff7d">arm_compute::TensorShape::broadcast_shape</a></div><div class="ttdeci">static TensorShape broadcast_shape(const Shapes &amp;...shapes)</div><div class="ttdoc">If shapes are broadcast compatible, return the broadcasted shape. </div><div class="ttdef"><b>Definition:</b> <a href="_tensor_shape_8h_source.xhtml#l00196">TensorShape.h:196</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1utility_xhtml_a067ebd28103d827b6ec17032e2344064"><div class="ttname"><a href="namespacearm__compute_1_1utility.xhtml#a067ebd28103d827b6ec17032e2344064">arm_compute::utility::for_each</a></div><div class="ttdeci">void for_each(F &amp;&amp;)</div><div class="ttdoc">Base case of for_each. </div><div class="ttdef"><b>Definition:</b> <a href="_utility_8h_source.xhtml#l00091">Utility.h:91</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_ad91bb73431b4de1f4946ed949d444849"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">arm_compute::test::fixed_point_arithmetic::detail::max</a></div><div class="ttdeci">fixed_point&lt; T &gt; max(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00902">FixedPoint.h:902</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a367b5090ab432bc7de2c32369e087ab1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0">DataLayout</a> data_layout </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the data layout of the tensor. </p>
<dl class="section return"><dt>Returns</dt><dd>A DataLayout containing the layout data information. </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#a5f63b63606dbbbe54474e6e970a6738c">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#a5f63b63606dbbbe54474e6e970a6738c">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="_graph_utils_8cpp_source.xhtml#l00176">PPMAccessor::access_tensor()</a>, <a class="el" href="_graph_utils_8cpp_source.xhtml#l00397">NumPyBinLoader::access_tensor()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00221">arm_compute::auto_init_if_empty()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00294">arm_compute::misc::shape_calculator::compute_deep_convolution_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00128">arm_compute::misc::shape_calculator::compute_depthwise_convolution_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00161">arm_compute::misc::shape_calculator::compute_im2col_conv_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00329">arm_compute::misc::shape_calculator::compute_pool_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00231">arm_compute::misc::shape_calculator::compute_winograd_filter_transform_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00246">arm_compute::misc::shape_calculator::compute_winograd_input_transform_shape()</a>, <a class="el" href="_accessor_8h_source.xhtml#l00107">Accessor::data_layout()</a>, <a class="el" href="_sub_tensor_info_8h_source.xhtml#l00225">SubTensorInfo::data_layout()</a>, <a class="el" href="_sub_tensor_info_8h_source.xhtml#l00130">SubTensorInfo::dimension()</a>, <a class="el" href="_validate_8h_source.xhtml#l00457">arm_compute::error_on_mismatching_data_layouts()</a>, <a class="el" href="_assembly_helper_8h_source.xhtml#l00081">AssemblyKernelGlue&lt; int8_t, int32_t &gt;::run()</a>, and <a class="el" href="_helpers_8inl_source.xhtml#l00270">arm_compute::set_data_layout_if_unknown()</a>.</p>

</div>
</div>
<a class="anchor" id="a7cfb31af63202568efef5214acfbf3ba"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> data_type </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Data type used for each element of the tensor. </p>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_tensor.xhtml" title="Basic implementation of the tensor interface. ">Tensor</a> data type </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#a9a3e72153aeb3ed212e9c3698774e881">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#a9a3e72153aeb3ed212e9c3698774e881">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="_graph_utils_8cpp_source.xhtml#l00154">NumPyAccessor::access_tensor()</a>, <a class="el" href="_graph_utils_8cpp_source.xhtml#l00262">TopNPredictionsAccessor::access_tensor()</a>, <a class="el" href="_graph_utils_8cpp_source.xhtml#l00314">RandomAccessor::access_tensor()</a>, <a class="el" href="_graph_utils_8cpp_source.xhtml#l00397">NumPyBinLoader::access_tensor()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00221">arm_compute::auto_init_if_empty()</a>, <a class="el" href="_accessor_8h_source.xhtml#l00112">Accessor::data_type()</a>, <a class="el" href="_sub_tensor_info_8h_source.xhtml#l00170">SubTensorInfo::data_type()</a>, <a class="el" href="_validate_8h_source.xhtml#l00721">arm_compute::error_on_data_type_not_in()</a>, <a class="el" href="_validate_8h_source.xhtml#l00508">arm_compute::error_on_mismatching_data_types()</a>, <a class="el" href="_validate_8h_source.xhtml#l00562">arm_compute::error_on_mismatching_fixed_point()</a>, <a class="el" href="_validate_8h_source.xhtml#l00627">arm_compute::error_on_mismatching_quantization_info()</a>, <a class="el" href="_validate_8h_source.xhtml#l01000">arm_compute::error_on_value_not_representable_in_fixed_point()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00259">arm_compute::set_data_type_if_unknown()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00281">arm_compute::set_fixed_point_position_if_zero()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00248">arm_compute::set_format_if_unknown()</a>, and <a class="el" href="_helpers_8inl_source.xhtml#l00292">arm_compute::set_quantization_info_if_empty()</a>.</p>

</div>
</div>
<a class="anchor" id="a178f0d3d87f959e00a743328d95359d2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t dimension </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>index</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the size of the requested dimension. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>Index of the dimension</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Dimension of the requested dimension </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#a8813441b655b97c00139c6a5a6390e97">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#a8813441b655b97c00139c6a5a6390e97">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="_graph_utils_8cpp_source.xhtml#l00154">NumPyAccessor::access_tensor()</a>, <a class="el" href="_graph_utils_8cpp_source.xhtml#l00262">TopNPredictionsAccessor::access_tensor()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00151">arm_compute::misc::shape_calculator::compute_deconvolution_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00187">arm_compute::misc::shape_calculator::compute_im2col_flatten_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00056">arm_compute::misc::shape_calculator::compute_interleaved_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00361">arm_compute::misc::shape_calculator::compute_mm_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00099">arm_compute::misc::shape_calculator::compute_reductionB_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00067">arm_compute::misc::shape_calculator::compute_transpose1xW_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00076">arm_compute::misc::shape_calculator::compute_transpose1xW_with_element_size_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00119">arm_compute::misc::shape_calculator::compute_transposed_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00231">arm_compute::misc::shape_calculator::compute_winograd_filter_transform_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00268">arm_compute::misc::shape_calculator::compute_winograd_output_transform_shape()</a>, <a class="el" href="_assembly_helper_8h_source.xhtml#l00081">AssemblyKernelGlue&lt; int8_t, int32_t &gt;::run()</a>, and <a class="el" href="_graph_utils_8cpp_source.xhtml#l00205">TopNPredictionsAccessor::TopNPredictionsAccessor()</a>.</p>

</div>
</div>
<a class="anchor" id="ae3372a4569b4702a881b1606b0c144c4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t dimension </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a74ce3f7420453d3446218ff3b7453e02">DataLayoutDimension</a>&#160;</td>
          <td class="paramname"><em>dimension</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the size of the requested data layout dimension. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">dimension</td><td>DataLayoutDimension of the dimension</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Dimension of the requested dimension </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#a650247f9a828d1ef60135b01f8f77765">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#a650247f9a828d1ef60135b01f8f77765">SubTensorInfo</a>.</p>

</div>
</div>
<a class="anchor" id="aa459796b5489eca8a9160cb5dcf1a103"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t element_size </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Element size in bytes calculated as data_size() * <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml#ad7829ae79223ab87f9da4c0bd7d229ba" title="The number of channels for each tensor element. ">num_channels()</a> </p>
<dl class="section return"><dt>Returns</dt><dd>The size of one element in bytes </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#a62b67b578f684c4d516843c9dea86a23">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#a62b67b578f684c4d516843c9dea86a23">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="_graph_utils_8cpp_source.xhtml#l00397">NumPyBinLoader::access_tensor()</a>, <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00523">arm_compute::compute_strides()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00076">arm_compute::misc::shape_calculator::compute_transpose1xW_with_element_size_shape()</a>, <a class="el" href="validation_2_n_e_o_n_2_depthwise_convolution_layer_8cpp_source.xhtml#l00057">arm_compute::test::validation::DATA_TEST_CASE()</a>, <a class="el" href="_accessor_8h_source.xhtml#l00092">Accessor::element_size()</a>, <a class="el" href="_sub_tensor_info_8h_source.xhtml#l00151">SubTensorInfo::element_size()</a>, and <a class="el" href="_graph_utils_8cpp_source.xhtml#l00282">RandomAccessor::RandomAccessor()</a>.</p>

</div>
</div>
<a class="anchor" id="a0cd5aea514f03afb48ebe22581ea4c66"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool extend_padding </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#a4467b302fc9ec312c40580336ab783da">PaddingSize</a> &amp;&#160;</td>
          <td class="paramname"><em>padding</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Update the offset to the first element, the strides and the total size. </p>
<dl class="section note"><dt>Note</dt><dd>This function can only increase the offset, strides and total size.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">padding</td><td>Padding around the XY plane in number of elements.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the strides, offset and total size have changed. </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#af53d8203ecc37896ca4579d1ee3fdffc">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#af53d8203ecc37896ca4579d1ee3fdffc">SubTensorInfo</a>.</p>

</div>
</div>
<a class="anchor" id="ab21a362740e892b6e913bd8db03b0e67"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual int fixed_point_position </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Fixed point position used when the tensor data type is QS8 or QS16. </p>
<dl class="section return"><dt>Returns</dt><dd>The fixed point position that expresses the number of bits for the fractional part of the number </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#a35ccf2eb0c18a15feab2db98b307b78b">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#a35ccf2eb0c18a15feab2db98b307b78b">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="_helpers_8inl_source.xhtml#l00221">arm_compute::auto_init_if_empty()</a>, <a class="el" href="_validate_8h_source.xhtml#l00562">arm_compute::error_on_mismatching_fixed_point()</a>, <a class="el" href="_validate_8h_source.xhtml#l00955">arm_compute::error_on_mismatching_fixed_point_position()</a>, <a class="el" href="_validate_8h_source.xhtml#l01000">arm_compute::error_on_value_not_representable_in_fixed_point()</a>, <a class="el" href="_accessor_8h_source.xhtml#l00132">Accessor::fixed_point_position()</a>, <a class="el" href="_sub_tensor_info_8h_source.xhtml#l00146">SubTensorInfo::fixed_point_position()</a>, and <a class="el" href="_helpers_8inl_source.xhtml#l00281">arm_compute::set_fixed_point_position_if_zero()</a>.</p>

</div>
</div>
<a class="anchor" id="a57360dd9ca408834c0ea1a8ef70a11f4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> format </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Colour format of the image. </p>
<dl class="section return"><dt>Returns</dt><dd>Colour format of the image </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#ac4b36cc1e56b0b7e579bb4b7196490db">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#ac4b36cc1e56b0b7e579bb4b7196490db">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="_accessor_8h_source.xhtml#l00102">Accessor::format()</a>, and <a class="el" href="_sub_tensor_info_8h_source.xhtml#l00175">SubTensorInfo::format()</a>.</p>

</div>
</div>
<a class="anchor" id="ac394d6570ab3325810a3532d39091a52"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool has_padding </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Checks if the tensor has been allocated with padding or not. </p>
<dl class="section return"><dt>Returns</dt><dd>True if padding is allocated in the tensor, otherwise false. </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#aa2ca251f99c56767719e991a26371603">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#aa2ca251f99c56767719e991a26371603">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="_sub_tensor_info_8h_source.xhtml#l00190">SubTensorInfo::has_padding()</a>.</p>

</div>
</div>
<a class="anchor" id="af555338f11d1d28f258f259ac3da743b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool is_resizable </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Flag indicating whether the size of the tensor can be changed. </p>
<dl class="section return"><dt>Returns</dt><dd>True if the tensor size can be changed. </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#aaee6555ace43b03173844b1a228a3fc3">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#aaee6555ace43b03173844b1a228a3fc3">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="validation_2_n_e_o_n_2_convolution_layer_8cpp_source.xhtml#l00148">arm_compute::test::validation::DATA_TEST_CASE()</a>, <a class="el" href="validation_2_n_e_o_n_2_g_e_m_m_8cpp_source.xhtml#l00140">arm_compute::test::validation::FIXTURE_DATA_TEST_CASE()</a>, and <a class="el" href="_sub_tensor_info_8h_source.xhtml#l00195">SubTensorInfo::is_resizable()</a>.</p>

</div>
</div>
<a class="anchor" id="ad7829ae79223ab87f9da4c0bd7d229ba"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t num_channels </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The number of channels for each tensor element. </p>
<dl class="section return"><dt>Returns</dt><dd>The number of channels for each tensor element </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#a6f13b974eeb528acde66de8d9b3fd95c">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#a6f13b974eeb528acde66de8d9b3fd95c">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="_helpers_8inl_source.xhtml#l00221">arm_compute::auto_init_if_empty()</a>, <a class="el" href="_validate_8h_source.xhtml#l00774">arm_compute::error_on_data_type_channel_not_in()</a>, <a class="el" href="_accessor_8h_source.xhtml#l00117">Accessor::num_channels()</a>, and <a class="el" href="_sub_tensor_info_8h_source.xhtml#l00160">SubTensorInfo::num_channels()</a>.</p>

</div>
</div>
<a class="anchor" id="a1f4e725b8e1ea36b30e09dc08ae6961d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t num_dimensions </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The number of dimensions of the tensor (rank) </p>
<dl class="section return"><dt>Returns</dt><dd>The number of dimensions of the tensor (rank) </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#a13622133d9b41900a6a3e8f89e59a78b">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#a13622133d9b41900a6a3e8f89e59a78b">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="_shape_calculator_8h_source.xhtml#l00187">arm_compute::misc::shape_calculator::compute_im2col_flatten_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00099">arm_compute::misc::shape_calculator::compute_reductionB_shape()</a>, and <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00501">arm_compute::compute_strides()</a>.</p>

</div>
</div>
<a class="anchor" id="a8a5312c9a822d27a3b38dc238c1c7de3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t offset_element_in_bytes </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classarm__compute_1_1_coordinates.xhtml">Coordinates</a> &amp;&#160;</td>
          <td class="paramname"><em>pos</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The offset in bytes from the beginning of the memory allocation to access the element at position (x, y, z ...) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td><a class="el" href="struct_vector.xhtml" title="Structure to hold Vector information. ">Vector</a> with the coordinates of the element to access. The size of this vector must be equal to the number of dimensions of the tensor</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Offset in bytes from the beginning of the memory allocation to access the element (x, y, z, ...) </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#a147790358ccd40f61dcd618cd4edd688">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#a147790358ccd40f61dcd618cd4edd688">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="utils_2_utils_8cpp_source.xhtml#l00107">arm_compute::utils::draw_detection_rectangle()</a>, <a class="el" href="_sub_tensor_info_8h_source.xhtml#l00140">SubTensorInfo::offset_first_element_in_bytes()</a>, and <a class="el" href="_i_tensor_8h_source.xhtml#l00063">ITensor::ptr_to_element()</a>.</p>

</div>
</div>
<a class="anchor" id="ad0bd5cc32e7e4c0699eccba91e5de397"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t offset_first_element_in_bytes </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The offset from the beginning of the memory allocation to the first element of the tensor. </p>
<p>This can be used to access efficiently elements in a 2D tensor</p>
<dl class="section return"><dt>Returns</dt><dd>The offset in bytes to access the first element of the tensor. </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#ab54246abe670b06f5624add7e7022904">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#ab54246abe670b06f5624add7e7022904">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="_graph_utils_8cpp_source.xhtml#l00205">TopNPredictionsAccessor::TopNPredictionsAccessor()</a>.</p>

</div>
</div>
<a class="anchor" id="a07b929c34ad1dc823d8315876aa403ce"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespacearm__compute.xhtml#a4467b302fc9ec312c40580336ab783da">PaddingSize</a> padding </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Padding of tensor. </p>
<dl class="section return"><dt>Returns</dt><dd>Padding. </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#a79e20eacb1e963e24a21ebd7369effd7">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#a79e20eacb1e963e24a21ebd7369effd7">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="_graph_utils_8cpp_source.xhtml#l00397">NumPyBinLoader::access_tensor()</a>, <a class="el" href="validation_2_n_e_o_n_2_g_e_m_m_lowp_8cpp_source.xhtml#l00164">arm_compute::test::validation::DATA_TEST_CASE()</a>, <a class="el" href="_n_e_o_n_2_accumulate_8cpp_source.xhtml#l00085">arm_compute::test::validation::FIXTURE_DATA_TEST_CASE()</a>, <a class="el" href="_accessor_8h_source.xhtml#l00127">Accessor::padding()</a>, <a class="el" href="_sub_tensor_info_8h_source.xhtml#l00185">SubTensorInfo::padding()</a>, and <a class="el" href="_graph_utils_8cpp_source.xhtml#l00282">RandomAccessor::RandomAccessor()</a>.</p>

</div>
</div>
<a class="anchor" id="a3f3e1a3200223e6a304a533b1016e749"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structarm__compute_1_1_quantization_info.xhtml">QuantizationInfo</a> quantization_info </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the quantization settings (scale and offset) of the tensor. </p>
<dl class="section return"><dt>Returns</dt><dd>A <a class="el" href="structarm__compute_1_1_quantization_info.xhtml" title="Quantization settings (used for QASYMM8 data type) ">QuantizationInfo</a> containing the scale and offset. </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#ac74736e3863207232a23b7181c1d0f44">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#ac74736e3863207232a23b7181c1d0f44">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="_helpers_8inl_source.xhtml#l00221">arm_compute::auto_init_if_empty()</a>, <a class="el" href="validation_2_n_e_o_n_2_convolution_layer_8cpp_source.xhtml#l00148">arm_compute::test::validation::DATA_TEST_CASE()</a>, <a class="el" href="_validate_8h_source.xhtml#l00627">arm_compute::error_on_mismatching_quantization_info()</a>, <a class="el" href="_accessor_8h_source.xhtml#l00137">Accessor::quantization_info()</a>, <a class="el" href="_sub_tensor_info_8h_source.xhtml#l00220">SubTensorInfo::quantization_info()</a>, and <a class="el" href="_helpers_8inl_source.xhtml#l00292">arm_compute::set_quantization_info_if_empty()</a>.</p>

</div>
</div>
<a class="anchor" id="afc135290818a7ae02d2195c013796fdd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a>&amp; reset_padding </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Resets the padding settings of the tensor. </p>
<dl class="section return"><dt>Returns</dt><dd>Reference to this <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml" title="Store the tensor&#39;s metadata. ">ITensorInfo</a> object </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#ad29c039b6f3c4534928ed99aa9f53027">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#ad29c039b6f3c4534928ed99aa9f53027">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="_sub_tensor_info_8h_source.xhtml#l00114">SubTensorInfo::reset_padding()</a>.</p>

</div>
</div>
<a class="anchor" id="abb9481fe056b9749f9b4c08db101cc15"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a>&amp; set_data_layout </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0">DataLayout</a> &amp;&#160;</td>
          <td class="paramname"><em>data_layout</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the data layout of the tensor. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">data_layout</td><td>DataLayout containing the layout data information.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml" title="Store the tensor&#39;s metadata. ">ITensorInfo</a> object </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#a16d275e5270f2c36a04764c863d852b6">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#a16d275e5270f2c36a04764c863d852b6">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="_helpers_8inl_source.xhtml#l00221">arm_compute::auto_init_if_empty()</a>, <a class="el" href="_sub_tensor_info_8h_source.xhtml#l00083">SubTensorInfo::set_data_layout()</a>, and <a class="el" href="_helpers_8inl_source.xhtml#l00270">arm_compute::set_data_layout_if_unknown()</a>.</p>

</div>
</div>
<a class="anchor" id="a9ebcdce876b4cd07736afa47d50154de"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a>&amp; set_data_type </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td>
          <td class="paramname"><em>data_type</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the data type to the specified value. </p>
<dl class="section warning"><dt>Warning</dt><dd>This resets the format to UNKNOWN.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">data_type</td><td>The new data type.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml" title="Store the tensor&#39;s metadata. ">ITensorInfo</a> object </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#a613528bd0feb15ee8d6df06cbdb629f8">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#a613528bd0feb15ee8d6df06cbdb629f8">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="_helpers_8inl_source.xhtml#l00201">arm_compute::auto_init_if_empty()</a>, <a class="el" href="_sub_tensor_info_8h_source.xhtml#l00077">SubTensorInfo::set_data_type()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00259">arm_compute::set_data_type_if_unknown()</a>, and <a class="el" href="_validate_helpers_8h_source.xhtml#l00067">arm_compute::graph::backends::detail::validate_convolution_layer()</a>.</p>

</div>
</div>
<a class="anchor" id="a8d9488caf817e12132f0ca2a4c30deba"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a>&amp; set_fixed_point_position </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>fixed_point_position</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the fixed point position to the specified value. </p>
<dl class="section warning"><dt>Warning</dt><dd>The fixed point position must be set once the data type has been configured</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>The new fixed point position</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml" title="Store the tensor&#39;s metadata. ">ITensorInfo</a> object </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#a2732b9eab657cad69807adb815b97c9f">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#a2732b9eab657cad69807adb815b97c9f">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="_helpers_8inl_source.xhtml#l00201">arm_compute::auto_init_if_empty()</a>, <a class="el" href="_sub_tensor_info_8h_source.xhtml#l00101">SubTensorInfo::set_fixed_point_position()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00281">arm_compute::set_fixed_point_position_if_zero()</a>, and <a class="el" href="_tensor_info_8cpp_source.xhtml#l00103">arm_compute::test::validation::TEST_CASE()</a>.</p>

</div>
</div>
<a class="anchor" id="a17394f0f7aea22d9b2d4c6f33bfa69ca"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a>&amp; set_format </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a>&#160;</td>
          <td class="paramname"><em>format</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the format of an already initialized tensor. </p>
<dl class="section note"><dt>Note</dt><dd>If the data type has already been configured (i.e. not UNKNOWN) it must match the new format. If data type hasn't been configured it will be based on the format.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">format</td><td>Single-plane format of the tensor.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml" title="Store the tensor&#39;s metadata. ">ITensorInfo</a> object </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#af501bc12f51874e786b0f28016a99ff7">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#af501bc12f51874e786b0f28016a99ff7">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="_c_l_2_derivative_8cpp_source.xhtml#l00047">arm_compute::test::validation::DATA_TEST_CASE()</a>, <a class="el" href="validation_2_n_e_o_n_2_min_max_location_8cpp_source.xhtml#l00081">arm_compute::test::validation::FIXTURE_DATA_TEST_CASE()</a>, <a class="el" href="_sub_tensor_info_8h_source.xhtml#l00095">SubTensorInfo::set_format()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00248">arm_compute::set_format_if_unknown()</a>, and <a class="el" href="validation_2_n_e_o_n_2_min_max_location_8cpp_source.xhtml#l00046">arm_compute::test::validation::validate_configuration()</a>.</p>

</div>
</div>
<a class="anchor" id="a9273842d8e5dc1a3c7fab727176fd7fe"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a>&amp; set_is_resizable </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>is_resizable</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the flag whether the tensor size can be changed. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">is_resizable</td><td>Flag that marks the tensor if it can be changed or not.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml" title="Store the tensor&#39;s metadata. ">ITensorInfo</a> object </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#a78bf77b2d9b959259f77a32b9a412184">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#a78bf77b2d9b959259f77a32b9a412184">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="_sub_tensor_info_8h_source.xhtml#l00200">SubTensorInfo::set_is_resizable()</a>.</p>

</div>
</div>
<a class="anchor" id="aaf74be25e2392705f29352ffaa4b1f9d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a>&amp; set_num_channels </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>num_channels</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the number of channels to the specified value. </p>
<dl class="section warning"><dt>Warning</dt><dd>This resets the format to UNKNOWN.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">num_channels</td><td>New number of channels.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml" title="Store the tensor&#39;s metadata. ">ITensorInfo</a> object </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#a5b0a9fd674f8748506b6944c030bc47e">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#a5b0a9fd674f8748506b6944c030bc47e">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="_helpers_8inl_source.xhtml#l00201">arm_compute::auto_init_if_empty()</a>, <a class="el" href="_sub_tensor_info_8h_source.xhtml#l00089">SubTensorInfo::set_num_channels()</a>, and <a class="el" href="_tensor_info_8cpp_source.xhtml#l00103">arm_compute::test::validation::TEST_CASE()</a>.</p>

</div>
</div>
<a class="anchor" id="a575d37eaf8a905c8ca3c0250757c2b81"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a>&amp; set_quantization_info </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structarm__compute_1_1_quantization_info.xhtml">QuantizationInfo</a> &amp;&#160;</td>
          <td class="paramname"><em>quantization_info</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the quantization settings (scale and offset) of the tensor. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">quantization_info</td><td><a class="el" href="structarm__compute_1_1_quantization_info.xhtml" title="Quantization settings (used for QASYMM8 data type) ">QuantizationInfo</a> containing the scale and offset</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml" title="Store the tensor&#39;s metadata. ">ITensorInfo</a> object </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#acda9036ad24c455f67f2fea388a0ae13">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#acda9036ad24c455f67f2fea388a0ae13">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="_helpers_8inl_source.xhtml#l00201">arm_compute::auto_init_if_empty()</a>, <a class="el" href="validation_2_c_l_2_g_e_m_m_lowp_8cpp_source.xhtml#l00052">arm_compute::test::validation::DATA_TEST_CASE()</a>, <a class="el" href="_sub_tensor_info_8h_source.xhtml#l00108">SubTensorInfo::set_quantization_info()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00292">arm_compute::set_quantization_info_if_empty()</a>, and <a class="el" href="_tensor_info_8cpp_source.xhtml#l00103">arm_compute::test::validation::TEST_CASE()</a>.</p>

</div>
</div>
<a class="anchor" id="a12a4f1190952613e36b44846962e26bb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a>&amp; set_tensor_shape </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td>
          <td class="paramname"><em>shape</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the shape of an already initialized tensor. </p>
<dl class="section warning"><dt>Warning</dt><dd>Changing the shape requires to recompute the strides and is therefore only possible if the tensor hasn't been allocated yet.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">shape</td><td>New tensor shape.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to this <a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml" title="Store the tensor&#39;s metadata. ">ITensorInfo</a> object </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#a7b6610e6100c67d39b712df6f4f80dcf">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#a7b6610e6100c67d39b712df6f4f80dcf">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="_helpers_8inl_source.xhtml#l00201">arm_compute::auto_init_if_empty()</a>, and <a class="el" href="_helpers_8inl_source.xhtml#l00237">arm_compute::set_shape_if_empty()</a>.</p>

</div>
</div>
<a class="anchor" id="a9586081a29fceb532ab270bd843abee6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void set_valid_region </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a> &amp;&#160;</td>
          <td class="paramname"><em>valid_region</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the valid region of the tensor. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">valid_region</td><td>Valid region to set. </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#a43e45363267b6bce4bb6770febe9ce11">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#a43e45363267b6bce4bb6770febe9ce11">SubTensorInfo</a>.</p>

</div>
</div>
<a class="anchor" id="a6b14f175bf5281f57b561e2d4e4b1f1f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="classarm__compute_1_1_strides.xhtml">Strides</a>&amp; strides_in_bytes </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The strides in bytes for accessing each dimension of the tensor. </p>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classarm__compute_1_1_strides.xhtml" title="Strides of an item in bytes. ">Strides</a> in bytes for each tensor dimension </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#a5f1ca9d674346287cae57a6c5b5c24ec">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#a5f1ca9d674346287cae57a6c5b5c24ec">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00482">arm_compute::colorconvert_iyuv_to_rgb()</a>, <a class="el" href="_n_e_color_convert_helper_8inl_source.xhtml#l00419">arm_compute::colorconvert_nv12_to_rgb()</a>, <a class="el" href="utils_2_utils_8cpp_source.xhtml#l00107">arm_compute::utils::draw_detection_rectangle()</a>, <a class="el" href="_assembly_helper_8h_source.xhtml#l00081">AssemblyKernelGlue&lt; int8_t, int32_t &gt;::run()</a>, and <a class="el" href="_sub_tensor_info_8h_source.xhtml#l00135">SubTensorInfo::strides_in_bytes()</a>.</p>

</div>
</div>
<a class="anchor" id="a7c66505457d00ece3aa4b34cab80757d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a>&amp; tensor_shape </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Size for each dimension of the tensor. </p>
<dl class="section return"><dt>Returns</dt><dd>A vector with the size for each dimension of the tensor </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#a269b19ce3f357ac65f41f9951906e38e">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#a269b19ce3f357ac65f41f9951906e38e">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="_graph_utils_8cpp_source.xhtml#l00176">PPMAccessor::access_tensor()</a>, <a class="el" href="_graph_utils_8cpp_source.xhtml#l00397">NumPyBinLoader::access_tensor()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00201">arm_compute::auto_init_if_empty()</a>, <a class="el" href="_window_8h_source.xhtml#l00377">Window::broadcast_if_dimension_le_one()</a>, <a class="el" href="utils_2_utils_8h_source.xhtml#l00936">arm_compute::utils::compare_tensor()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00110">arm_compute::misc::shape_calculator::compute_col2im_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00151">arm_compute::misc::shape_calculator::compute_deconvolution_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00294">arm_compute::misc::shape_calculator::compute_deep_convolution_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00128">arm_compute::misc::shape_calculator::compute_depthwise_convolution_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00211">arm_compute::misc::shape_calculator::compute_fully_connected_reshaped_weights_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00161">arm_compute::misc::shape_calculator::compute_im2col_conv_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00179">arm_compute::misc::shape_calculator::compute_im2col_fc_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00187">arm_compute::misc::shape_calculator::compute_im2col_flatten_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00056">arm_compute::misc::shape_calculator::compute_interleaved_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00319">arm_compute::misc::shape_calculator::compute_min_max_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00361">arm_compute::misc::shape_calculator::compute_mm_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00039">arm_compute::misc::shape_calculator::compute_permutation_output_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00329">arm_compute::misc::shape_calculator::compute_pool_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00089">arm_compute::misc::shape_calculator::compute_reductionA_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00099">arm_compute::misc::shape_calculator::compute_reductionB_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00354">arm_compute::misc::shape_calculator::compute_rnn_shape()</a>, <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00501">arm_compute::compute_strides()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00067">arm_compute::misc::shape_calculator::compute_transpose1xW_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00076">arm_compute::misc::shape_calculator::compute_transpose1xW_with_element_size_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00119">arm_compute::misc::shape_calculator::compute_transposed_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00045">arm_compute::misc::shape_calculator::compute_weights_reshaped_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00231">arm_compute::misc::shape_calculator::compute_winograd_filter_transform_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00246">arm_compute::misc::shape_calculator::compute_winograd_input_transform_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00268">arm_compute::misc::shape_calculator::compute_winograd_output_transform_shape()</a>, <a class="el" href="_shape_calculator_8h_source.xhtml#l00376">arm_compute::misc::shape_calculator::get_shape_from_info()</a>, <a class="el" href="_accessor_8h_source.xhtml#l00122">Accessor::num_elements()</a>, <a class="el" href="_graph_utils_8cpp_source.xhtml#l00080">CaffePreproccessor::preprocess()</a>, <a class="el" href="_graph_utils_8cpp_source.xhtml#l00057">TFPreproccessor::preprocess()</a>, <a class="el" href="_graph_utils_8cpp_source.xhtml#l00282">RandomAccessor::RandomAccessor()</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00237">arm_compute::set_shape_if_empty()</a>, <a class="el" href="_sub_tensor_info_8h_source.xhtml#l00210">SubTensorInfo::set_valid_region()</a>, <a class="el" href="_assembly_helper_8h_source.xhtml#l00159">arm_compute::setup_assembly_kernel()</a>, and <a class="el" href="_accessor_8h_source.xhtml#l00087">Accessor::shape()</a>.</p>

</div>
</div>
<a class="anchor" id="a18064e0011c3869d884653e9e7c47b66"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t total_size </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the total size of the tensor in bytes. </p>
<dl class="section return"><dt>Returns</dt><dd>Total size of the tensor in bytes. </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#af398466b602a02b42d8df19fb66a6c60">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#af398466b602a02b42d8df19fb66a6c60">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="_graph_utils_8cpp_source.xhtml#l00397">NumPyBinLoader::access_tensor()</a>, <a class="el" href="_graph_utils_8cpp_source.xhtml#l00132">NumPyAccessor::NumPyAccessor()</a>, <a class="el" href="_graph_utils_8cpp_source.xhtml#l00282">RandomAccessor::RandomAccessor()</a>, <a class="el" href="_assembly_helper_8h_source.xhtml#l00081">AssemblyKernelGlue&lt; int8_t, int32_t &gt;::run()</a>, <a class="el" href="_accessor_8h_source.xhtml#l00097">Accessor::size()</a>, and <a class="el" href="_sub_tensor_info_8h_source.xhtml#l00180">SubTensorInfo::total_size()</a>.</p>

</div>
</div>
<a class="anchor" id="a74dfd07380a290c34fe7c8e065029b95"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a> valid_region </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Valid region of the tensor. </p>
<p>All elements in the valid region have defined values, i.e. are not undefined.</p>
<dl class="section return"><dt>Returns</dt><dd>The valid region. </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#a3c20d908342087484d883574d55dd482">TensorInfo</a>, and <a class="el" href="classarm__compute_1_1_sub_tensor_info.xhtml#a3c20d908342087484d883574d55dd482">SubTensorInfo</a>.</p>

<p>Referenced by <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00457">arm_compute::calculate_max_enlarged_window()</a>, <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00409">arm_compute::calculate_max_window()</a>, <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00434">arm_compute::calculate_max_window_horizontal()</a>, <a class="el" href="validation_2_n_e_o_n_2_convolution_layer_8cpp_source.xhtml#l00148">arm_compute::test::validation::DATA_TEST_CASE()</a>, and <a class="el" href="_sub_tensor_info_8h_source.xhtml#l00210">SubTensorInfo::set_valid_region()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>arm_compute/core/<a class="el" href="_i_tensor_info_8h_source.xhtml">ITensorInfo.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespacearm__compute.xhtml">arm_compute</a></li><li class="navelem"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a></li>
    <li class="footer">Generated on Wed May 23 2018 11:36:42 for Compute Library by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
